<?php
header('Content-Type: application/json');

// 获取当前请求的协议
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
// 获取当前请求的域名
$host = $_SERVER['HTTP_HOST'];
// 获取当前请求的URI基础路径
$basePath = dirname($_SERVER['SCRIPT_NAME']);

// 获取板块列表
$dir = "../bbs_list/";
$page = isset($_GET['page']) ? intval($_GET['page']) : 1; // 获取当前页码，默认为第一页
$perPage = 100; // 每页显示的帖子数量
$start = ($page - 1) * $perPage; // 计算当前页的起始位置

// 读取目录中的所有文件和文件夹
$a = scandir($dir);
rsort($a); // 以文件名降序排序

// 初始化帖子数组
$bbss = [];

// 遍历目录中的文件和文件夹
foreach($a as $b) {
        // 检查是否为目录且以数字开头
            if (is_dir($dir . $b) && preg_match('/^\d+$/', $b)) {
                        // 读取板块信息
                                $title = file_get_contents($dir . $b . "/title"); // 标题
                                        $mod = file_get_contents($dir . $b . "/mod"); // 管理员
                                                $img = file_get_contents($dir . $b . "/img"); // 图标
                                                        $int = file_get_contents($dir . $b . "/int"); // 介绍

                                                                if ($mod==""){
                                                                                $mod = "无管理员";
                                                                }

                                                                        // 获取帖子列表
                                                                                $postDir = "../post_list/";
                                                                                        $posts = [];
                                                                                                $printedPostIds = [];
                                                                                                        $bPosts = scandir($postDir);
                                                                                                                rsort($bPosts);
                                                                                                                        foreach($bPosts as $postId) {
                                                                                                                                        if (is_dir($postDir . $postId) && preg_match('/^\d+$/', $postId)) {
                                                                                                                                                            $bbsid = file_get_contents($postDir . $postId . "/bbsid");
                                                                                                                                                                            if ($bbsid == $b) {
                                                                                                                                                                                                    $bro = file_get_contents($postDir . $postId . "/bro"); // 浏览量
                                                                                                                                                                                                                        $com = file_get_contents($postDir . $postId . "/com"); // 评论量
                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                $posts[] = [
                                                                                                                                                                                                                                                                                            'bro' => $bro,
                                                                                                                                                                                                                                                                                                                    'com' => $com
                                                                                                                                                                                                                                                                ];
                                                                                                                                                                            }
                                                                                                                                        }
                                                                                                                        }

                                                                                                                                // 计算板块热度
                                                                                                                                        $totalPosts = count($posts);
                                                                                                                                                $totalHeat = 0;
                                                                                                                                                        foreach($posts as $post) {
                                                                                                                                                                        $totalHeat += intval($post['bro']) + intval($post['com']);
                                                                                                                                                        }
                                                                                                                                                                $heat = $totalPosts > 0 ? round(($totalHeat / $totalPosts), 2) : 0;

                                                                                                                                                                        // 将帖子信息添加到数组中
                                                                                                                                                                                $bbss[] = [
                                                                                                                                                                                                "id" => $b,
                                                                                                                                                                                                            "title" => $title,
                                                                                                                                                                                                                        "mod" => $mod,
                                                                                                                                                                                                                                    "img" => $img,
                                                                                                                                                                                                                                                "int" => $int,
                                                                                                                                                                                                                                                            "pn" => '帖子:'.$totalPosts,
                                                                                                                                                                                                                                                                        "ht" => '热度:'.$heat.'℃' // 板块热度
                                                                                                                                                                                ];
            }
}

// 分页处理
$totalbbss = count($bbss);
$totalPages = ceil($totalbbss / $perPage);
$page = max(1, min($page, $totalPages)); // 确保页码在有效范围内

// 分页加载板块
$bbss = array_slice($bbss, $start, $perPage);

// 输出JSON数据
$sz = [
        'msg' => '200',
            '页数' => $page,
                '总页数' => $totalPages,
                    '当前页面帖子总数' => count($bbss),
                        'list' => $bbss
];
echo json_encode($sz, JSON_UNESCAPED_UNICODE);
?>
]
                                                                                                                                                                                ]
                                                                                                                                                        }
                                                                                                                                                                                                                                                                ]
                                                                                                                                                                            }
                                                                                                                                        }
                                                                                                                        }
                                                                }
            }
}